const express = require('express')
const app = express()
app.listen(3000)
const path=require('path')

//引入记录日志中间件
const writeLog=require('./middleware/writeLog')
//导入封装错误函数
const writeError=require('./utils/writeError')
//引入前端来的请求处理模块-引入frontRouter文件夹
const frontRouter = require('./frontRouter')
//引入后端来的请求处理模块
const adminRouter = require('./adminRouter')
//引入加密模块
const bodyParser = require('body-parser')

//记录日志
app.use(writeLog)

//给后端提交数据的页面做静态托管--不加路径优先打开这个静态资源托管的页面
app.use(express.static('adminTemplate'))
//给404和error界面的文件夹做静态资源托管  -错误时响应托管好的文件地址
app.use('/error',express.static('commonTemplate'))



//获取post数据的中间件
app.use(bodyParser.urlencoded({
    extended: false
}))

//前台请求
app.use('/front', frontRouter)
//后台请求
app.use('/admin', adminRouter)

//手动报错
app.get('/c',(req,res)=>{
    throw new Error('自定义错误')
})

////404中间件和异常处理中间件
app.use((req, res, next) => {
    //调用封装好的错误函数
    writeError('404')
    // res.send('404')
    res.redirect('/error/404.html')//跳转路径-进入静态资源托管文件404页面
})
app.use((err, req, res, next) => {
    console.log(err)
     //调用封装好的错误函数
    writeError('"'+err+'"')
    // res.send('error')
    res.redirect('/error/error.html')
})